home *** CD-ROM | disk | FTP | other *** search
/ The Game Master (3rd Edition) / The Game Master 3rd edition.iso / files / gameture / ttowers / ttowers.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-12-21  |  15.5 KB  |  359 lines

  1. 2  WIDTH 80 : COLOR 7,0,0
  2. 10000  REM ****************************************************************
  3. 10001  REM **                                                            **
  4. 10002  REM **                     TRIVIAL TOWERS                         **
  5. 10003  REM **                                                            **
  6. 10004  REM **           COPYRIGHT 1984, VINYARD SOFTWARE, INC.           **
  7. 10005  REM **           UNPUBLISHED WORK - ALL RIGHTS RESERVED           **
  8. 10006  REM **                                                            **
  9. 10007  REM **                       VERSION 1.0                          **
  10. 10008  REM **                                                            **
  11. 10009  REM ****************************************************************
  12. 10100  KEY OFF : RANDOMIZE 1 :CLS
  13. 10110  DEFINT A - Z
  14. 10200  REM ****************************************************************
  15. 10201  REM **                                                            **
  16. 10202  REM **         PUT UP THE LOGO AND COPYRIGHT STATEMENT            **
  17. 10203  REM **                                                            **
  18. 10204  REM ****************************************************************
  19. 10205  DIM IA(4),IB(4),IC(4),ID(4),IE(4),IG(4)
  20. 10210  FOR I = 1 TO 4
  21. 10220      READ IA(I),IB(I),IC(I),ID(I),IE(I),IG(I)
  22. 10230  NEXT I
  23. 10240  DATA   0,81, 0, 1, 1, 1
  24. 10250  DATA   1,24,81, 1,-1,-1
  25. 10260  DATA  80, 0,24,-1,-1, 1
  26. 10270  DATA  24, 1, 0,-1, 1,-1
  27. 10300  FOR I = 1 TO 3
  28. 10310      FOR J = 1 TO 4
  29. 10320          IA(J)=IA(J)+ID(J)
  30. 10330          IB(J)=IB(J)-ID(J)
  31. 10340          IC(J)=IC(J)+IE(J)
  32. 10350      NEXT J
  33. 10360      FOR J = 1 TO 4
  34. 10370          FOR K =  IA(J) TO IB(J) STEP ID(J)
  35. 10380              COLOR 0,(INT(RND*7)+1)
  36. 10385              SOUND (INT(RND*7500))+500,0.5
  37. 10390              IF IG(J) = 1 THEN LOCATE IC(J),K,0
  38. 10400              IF IG(J) =-1 THEN LOCATE K,IC(J),0
  39. 10410              PRINT "?";
  40. 10420          NEXT K
  41. 10430      NEXT J
  42. 10440  NEXT I
  43. 10500  LOCATE 6,27:COLOR 0,6:PRINT" T R I V I A L    T O W E R S "
  44. 10505  LOCATE 8,22:COLOR 0,5:PRINT" COPYRIGHT 1984, VINYARD SOFTWARE, INC. "
  45. 10510  LOCATE 9,22:COLOR 0,5:PRINT" UNPUBLISHED WORK - ALL RIGHTS RESERVED "
  46. 10515  LOCATE 11,36:COLOR 0,4:PRINT" VERSION 1.0 "
  47. 10520  DIM JJ(7)
  48. 10530  FOR I = 1 TO 7 :READ JJ(I) : NEXT I
  49. 10540  DATA 2,3,4,5,6,4,2
  50. 10550  FOR I = 1 TO 7
  51. 10560       FOR J = 19 TO JJ(I)+12 STEP -1
  52. 10570            COLOR 0,(INT(RND*7)+1)
  53. 10575            PLAY "mf"
  54. 10580            SOUND ((20-J)*1000),2
  55. 10585            II = (I*3)+29
  56. 10590            LOCATE J,II :PRINT " "
  57. 10600            LOCATE J,II+1 : PRINT " "
  58. 10610       NEXT J
  59. 10620  NEXT I
  60. 10650  FOR I = 1 TO 3000:NEXT I :REM WAIT A COUPLE OF SECONDS BEFORE CONTINUING
  61. 10700  REM ***************************************************************
  62. 10701  REM **                                                           **
  63. 10702  REM **    QUERY ABOUT THE QUESTION ENTER AND UPDATE ROUTINE      **
  64. 10703  REM **                                                           **
  65. 10704  REM ***************************************************************
  66. 10710  COLOR 6,0 : CLS
  67. 10720  PRINT "WOULD YOU LIKE TO CREATE OR UPDATE YOUR QUESTION FILES (Y OR N)";
  68. 10730  INPUT Y$
  69. 10740  IF Y$="Y" OR Y$="y" THEN CHAIN "A:TTENTER.BAS"
  70. 11000  REM ***************************************************************
  71. 11002  REM **       INITIALIZE VARIABLES AND OTHER HOUSEKEEPING         **
  72. 11004  REM ***************************************************************
  73. 11010  GOSUB 55000: REM INITIALIZE VARIABLES, VECTORS, AND ARRAYS
  74. 11020  IR = 1: REM IR IS THE ACTIVE DISPLAY ROW POINTER
  75. 11030  IC = 1: REM IC IS THE ACTIVE DISPLAY COLUMN POINTER
  76. 11040  NC = 6: REM NC IS THE ACTIVE DISPLAY COLOR
  77. 11045  ER = 24: REM ER IS THE ERASE ROW POINTER FOR GOSUB 59500
  78. 11050  COLOR NC,0:CLS
  79. 11060  PRINT "PLEASE REMOVE THE PROGRAM DISK AND INSERT THE QUESTION DISK."
  80. 11070  PRINT
  81. 11080  PRINT "PUSH THE RETURN KEY WHEN FINISHED.";:INPUT Y$
  82. 11500  REM *****************************************************************
  83. 11502  REM **        SOLICIT STARTING PARAMETERS FROM THE PLAYERS         **
  84. 11504  REM *****************************************************************
  85. 11510  NC = 3:COLOR NC,0:CLS
  86. 11520  LOCATE IR,IC:PRINT "NUMBER OF PLAYERS (2 - 4)";
  87. 11525  COLOR 0,NC: INPUT NP:COLOR NC,0:GOSUB 59500
  88. 11530  IF NP => 2 GOTO 11540 ELSE NERR=1:GOSUB 59000:GOTO 11520
  89. 11540  IF NP <= 4 GOTO 11550 ELSE NERR=2:GOSUB 59000:GOTO 11520
  90. 11550  DIM NM$(4):REM NAMES OF THE PLAYERS
  91. 11560  FOR I = 1 TO NP
  92. 11570      LOCATE 3*I+3,2:PRINT "TYPE IN NAME OF PLAYER";I;
  93. 11575      COLOR 0,NC:INPUT NM$(I):COLOR NC,0: GOSUB 59500
  94. 11580      LOCATE 3*I+3,51:PRINT "YOUR GAME PIECE IS --> ";
  95. 11585      COLOR 0,NC : PRINT GP$(I); : COLOR NC,0
  96. 11590  NEXT I
  97. 11595  FOR I = 1 TO 2500: NEXT I: CLS
  98. 11600  NC = 6: IR = 2
  99. 11610  COLOR 0,NC: LOCATE IR,IC
  100. 11620  PRINT "ALL OF YOU WILL USE THE SAME FOUR CATEGORIES.  YOU MAY PICK FROM THESE."
  101. 11630  IR = 5:LOCATE IR,IC: COLOR NC,0: FILES:COLOR 0,NC
  102. 11640  IR = 10:LOCATE IR,IC: PRINT "TYPE IN THE NAME AND PICK A STARTING QUESTION."
  103. 11660  IC = 2: COLOR NC,0
  104. 11670  IR = 12: LOCATE IR,IC:PRINT"1ST CATEGORY";TAB(IC+53);"STARTING QUESTION."
  105. 11680  IR = 14: LOCATE IR,IC:PRINT"2ND CATEGORY";TAB(IC+53);"STARTING QUESTION."
  106. 11690  IR = 16: LOCATE IR,IC:PRINT"3RD CATEGORY";TAB(IC+53);"STARTING QUESTION."
  107. 11700  IR = 18: LOCATE IR,IC:PRINT"4TH CATEGORY";TAB(IC+53);"STARTING QUESTION."
  108. 11710  DIM FIL$(4), Q$(4), A$(4), NR(4), NS(4): REM FILE, QSTN, ANSW, #Q, STRTQ
  109. 11715  CLOSE :IC=IC+12
  110. 11720  FOR I = 1 TO 4
  111. 11730      LOCATE (I*2+10),IC:COLOR NC,0:PRINT " ";TAB(IC+10);" "
  112. 11735      LOCATE (I*2+10),IC :COLOR 0,NC:INPUT FIL$(I):COLOR NC,0:GOSUB 59500
  113. 11737      ON ERROR GOTO 59600
  114. 11740      OPEN FIL$(I) AS #1 : FIELD#1,72 AS Q$(I),56 AS A$(I)
  115. 11750      NR(I)=LOF(1)/128  : CLOSE #1
  116. 11760      IF NR(I) > 10 GOTO 11790
  117. 11770      IF NR(I) > 0 THEN NERR =3:GOSUB 59000:GOTO 11730
  118. 11780      NERR=4:GOSUB 59000:KILL FIL$(I):GOTO 11730
  119. 11790      REM
  120. 11800      LOCATE (I*2+10),IC+11:PRINT "> WHICH HAS";NR(I);"QUESTIONS <";
  121. 11810      LOCATE (I*2+10),IC+58:COLOR NC,0:PRINT "    ";
  122. 11820      LOCATE (I*2+10),IC+58:COLOR 0,NC:INPUT NS(I):COLOR NC,0:GOSUB 59500
  123. 11830      IF NS(I) > 0 GOTO 11840 ELSE NERR=5:GOSUB 59000:GOTO 11810
  124. 11840      IF NS(I) <=NR(I) GOTO 11900 ELSE NERR=6:GOSUB 59000:GOTO 11810
  125. 11900  NEXT I
  126. 11910  ON ERROR GOTO 0
  127. 12000  REM ******************************************************************
  128. 12002  REM **                PUT UP THE GAME BOARD                         **
  129. 12004  REM ******************************************************************
  130. 12010  CLS
  131. 12020  FOR I = 1 TO 40
  132. 12030      COLOR 0,GBC(I)
  133. 12035      SOUND (EXP(I/10+4)),4
  134. 12040      FOR J = 0 TO 5
  135. 12050          FOR K = 0 TO 1
  136. 12060                LOCATE GSR(I)+K,GSC(I)+J:PRINT " "
  137. 12070          NEXT K
  138. 12080      NEXT J
  139. 12090  NEXT I
  140. 12100  FOR I = 1 TO 4
  141. 12110      LOCATE 13,BRC(1,I)-1:  COLOR 0,CCL(I)
  142. 12120      PRINT " ";TAB(BRC(1,I)+1)   ;FIL$(I);TAB(BRC(1,I)+11);" "
  143. 12130  NEXT I
  144. 12140  LOCATE 15,23:COLOR 0,GBC(1):PRINT "WILD CARD SQUARE - YOU PICK CATEGORY";
  145. 12200  FOR PLR = 1 TO NP
  146. 12210       FOR CAT = 1 TO 4
  147. 12220            LOCATE BRR(PLR,CAT),BRC(PLR,CAT)
  148. 12230            COLOR 0,CCL(CAT):PRINT GP$(PLR)
  149. 12240            BRR(PLR,CAT)=BRR(PLR,CAT)-2
  150. 12250            LOCATE BRR(PLR,CAT)-5,BRC(PLR,CAT)
  151. 12260            COLOR CCL(CAT),0:PRINT CHR$(22);CHR$(22)
  152. 12270       NEXT CAT
  153. 12280       GOSUB 50100:REM PRINT GAME PIECES
  154. 12290  NEXT PLR
  155. 13000  REM *************************************************************
  156. 13002  REM **             THE MEAT OF THE PROGRAM BEGINS HERE         **
  157. 13004  REM *************************************************************
  158. 13010  NC = 7:COLOR 0,NC,0   :ER=23:LOCATE ER,1
  159. 13020  PRINT "       PUSH RETURN TO START GAME       ";
  160. 13030  INPUT Y$: GOSUB 59500
  161. 13100  REM *************************************************************
  162. 13102  REM **        LOOP THROUGH THE QUESTIONS AND MOVES             **
  163. 13104  REM *************************************************************
  164. 13110  FOR PLR = 1 TO NP
  165. 13120     ER=20:NC = 4:GOSUB 59500
  166. 13130     COLOR NC,0:LOCATE ER,1:PRINT "PLAYER";PLR;" (";
  167. 13140     COLOR 0,NC:PRINT GP$(PLR);:COLOR NC,0
  168. 13150     PRINT ") --> ";NM$(PLR);TAB(35);:NC=5:COLOR NC,0
  169. 13160     ROLL = INT(RND*6+1)
  170. 13170     PRINT "ROLLED A ";:COLOR 0,NC:PRINT ROLL
  171. 13175     GOSUB 50300 : REM PUT UP BLINKING ALTERNATIVES
  172. 13180     ER=22:NC=6:GOSUB 59500
  173. 13190     LOCATE ER,1:COLOR NC,0
  174. 13200     PRINT "CLOCKWISE, KOUNTERCLOCKWISE, OR QUIT (C, K, OR Q)";
  175. 13210     COLOR 0,NC:INPUT CLK$:ER = 24:GOSUB 59500
  176. 13220     IF (CLK$="C") OR (CLK$="K") OR (CLK$="Q") GOTO 13300
  177. 13221     IF (CLK$="c") OR (CLK$="k") OR (CLK$="q") GOTO 13300
  178. 13230     NERR=7:GOSUB 59000:GOTO 13180
  179. 13300     IF (CLK$="Q") OR (CLK$="q") GOTO 49000
  180. 13310     GOSUB 50500: REM ERASE CURRENT GAME PIECE
  181. 13320     IF (CLK$="C") OR (CLK$="c") THEN PLS(PLR)=PTMP(1)
  182. 13330     IF (CLK$="K") OR (CLK$="k") THEN PLS(PLR)=PTMP(2)
  183. 13350     GOSUB 50100: REM PRINT CURRENT GAME PIECE
  184. 13400     IF GBC(PLS(PLR))=4 THEN CAT=1:GOTO 13500
  185. 13410     IF GBC(PLS(PLR))=7 THEN CAT=2:GOTO 13500
  186. 13420     IF GBC(PLS(PLR))=5 THEN CAT=3:GOTO 13500
  187. 13430     IF GBC(PLS(PLR))=6 THEN CAT=4:GOTO 13500
  188. 13440     NC=3:ER=20:IR=20:IC=1:GOSUB 59500  
  189. 13450     COLOR 0,NC:LOCATE IR,IC
  190. 13460     PRINT"WILD CARD! PICK YOUR CATEGORY (1=RED;2=WHITE;3=PURPLE;4=YELLOW;)";
  191. 13465     INPUT Y$
  192. 13470     IF ( (Y$ = "1") OR (Y$ = "2") OR (Y$ = "3") OR (Y$ = "4") ) GOTO 13490
  193. 13480     NERR = 8 : GOSUB 59000:GOTO 13450
  194. 13490     CAT = VAL(Y$)
  195. 13500     ER=24:GOSUB 59500:ER = 20 :GOSUB 59500
  196. 13600     REM ***********************************************************
  197. 13602     REM **        PRINT QUESTION AND SOLICIT RESPONSE            **
  198. 13604     REM ***********************************************************
  199. 13610     IF NS(CAT)>NR(CAT) THEN NS(CAT) = 1 : REM GOTO BEGIN OF QUES STACK
  200. 13615     OPEN FIL$(CAT) AS #1 : FIELD #1,72 AS Q$(CAT),56 AS A$(CAT)
  201. 13620     GET #1,NS(CAT):CLOSE #1:NS(CAT)=NS(CAT)+1
  202. 13630     NC=CCL(CAT):ER=20:IR=20:IC=1 : GOSUB 59500
  203. 13640     COLOR 0,NC:LOCATE IR,IC: PRINT"Q:";Q$(CAT)
  204. 13650     ER=22:IR=22:GOSUB 59500
  205. 13660     COLOR NC,0: LOCATE IR,IC
  206. 13670     PRINT "AFTER PLAYER ANSWERS, PUSH RETURN";:INPUT Y$
  207. 13680     GOSUB 59500:COLOR 0,NC:LOCATE IR,IC
  208. 13690     PRINT "A:";A$(CAT);" CORRECT (Y/N)";:INPUT Y$
  209. 13700     ER=24:GOSUB 59500
  210. 13710     IF Y$="Y" OR Y$="y" GOTO 13800
  211. 13720     IF Y$="N" OR Y$="n" GOTO 15000
  212. 13730     NERR=9:GOSUB 59000:GOTO 13680
  213. 13800     REM **************************************************************
  214. 13802     REM **                     UPDATE TOWER                         **
  215. 13804     REM **************************************************************
  216. 13810     NCRT(PLR,CAT) = NCRT(PLR,CAT)+1
  217. 13820     IF NCRT(PLR,CAT) > 6 THEN NCRT(PLR,CAT) =6
  218. 13830     COLOR 0,NC
  219. 13840     FOR I = 1 TO NCRT(PLR,CAT)
  220. 13850           SOUND EXP(I/3+4),4
  221. 13855           LOCATE 11-I,BRC(PLR,CAT):PRINT "  ";
  222. 13860     NEXT I
  223. 13870     COLOR NC,0
  224. 13880     IF (NCRT(PLR,1)+NCRT(PLR,2)+NCRT(PLR,3)+NCRT(PLR,4))=24 THEN 16000
  225. 13890     GOTO 13120:REM THIS PLAYER GETS ANOTHER TURN
  226. 15000  NEXT PLR:GOTO 13100: REM NEXT PERSON'S TURN
  227. 16000  REM *******************************************************************
  228. 16002  REM **                 DECLARE THE WINNER                            **
  229. 16004  REM *******************************************************************
  230. 16010  ER=20:IR=20:GOSUB 59500:LOCATE IR,IC
  231. 16020  COLOR 0,NC: FOR I = 1 TO 80 : PRINT "*";:NEXT I
  232. 16040  COLOR 0,NC:PRINT "******";TAB(28);:COLOR NC,0,0
  233. 16050  PRINT " ";NM$(PLR);" IS THE WINNER! ";:COLOR 0,NC,0
  234. 16060  PRINT TAB(75);"******";
  235. 16070  COLOR 0,NC: FOR I = 1 TO 80: PRINT "*";:NEXT I
  236. 16080  ER=23:GOSUB 59500
  237. 16100  FOR I = 1 TO 15
  238. 16110     FOR J = 400 TO 1600 STEP 25
  239. 16120          SOUND J,0.2
  240. 16130     NEXT J
  241. 16140  NEXT I
  242. 49000  REM ******************************************************************
  243. 49002  REM **       END OF MAIN PROGRAM - RETURN TO MONITOR                **
  244. 49004  REM ******************************************************************
  245. 49020  LOCATE 24,1
  246. 49030  PRINT "AFTER YOU PUT PROGRAM DISK INTO DRIVE A:, PUSH THE RETURN KEY";
  247. 49040  INPUT Y$
  248. 49050  COLOR 7,0,0  :CLS
  249. 49060  KEY ON
  250. 49999  GOTO 65529
  251. 50000  REM *******************************************************************
  252. 50002  REM **              START OF SUBROUTINES                             **
  253. 50004  REM *******************************************************************
  254. 50100  REM *************************************************************
  255. 50102  REM **               PRINT GAME PIECE                          **
  256. 50104  REM *************************************************************
  257. 50110  COLOR 0,GBC(PLS(PLR))
  258. 50120  LOCATE GSR(PLS(PLR))+GPR(PLR),GSC(PLS(PLR))+GPC(PLR)
  259. 50130  PRINT GP$(PLR):RETURN
  260. 50230  PRINT "  ":RETURN
  261. 50300  REM *************************************************************
  262. 50302  REM **               PUT UP BLINKING ALTERNATIVES              **
  263. 50304  REM *************************************************************
  264. 50310  PTMP(1) = PLS(PLR)+ROLL :CK$(1)="C"
  265. 50320  PTMP(2) = PLS(PLR)-ROLL :CK$(2)="K"
  266. 50330  FOR J = 1 TO 2
  267. 50340      IF PTMP(J) > 40 THEN PTMP(J) = PTMP(J)-40
  268. 50350      IF PTMP(J) <  1 THEN PTMP(J) = PTMP(J)+40
  269. 50360      COLOR 0+16,GBC(PTMP(J))
  270. 50370      LOCATE GSR(PTMP(J))+GPR(PLR),GSC(PTMP(J))+GPC(PLR)
  271. 50380      PRINT CK$(J)
  272. 50390  NEXT J
  273. 50400  RETURN
  274. 50500  REM *************************************************************
  275. 50502  REM **               ERASE GAME PIECE AND C & K                **
  276. 50504  REM *************************************************************
  277. 50510  COLOR 0,GBC(PLS(PLR))
  278. 50520  LOCATE GSR(PLS(PLR))+GPR(PLR),GSC(PLS(PLR))+GPC(PLR) : PRINT "  "
  279. 50530  COLOR 0,GBC(PTMP(1))
  280. 50540  LOCATE GSR(PTMP(1))+GPR(PLR),GSC(PTMP(1))+GPC(PLR)   : PRINT "  "
  281. 50550  COLOR 0,GBC(PTMP(2))
  282. 50560  LOCATE GSR(PTMP(2))+GPR(PLR),GSC(PTMP(2))+GPC(PLR)   : PRINT "  "
  283. 50570  RETURN
  284. 55000  REM *************************************************************
  285. 55002  REM **              CREATE GAME PIECES                         **
  286. 55004  REM *************************************************************
  287. 55020  DIM GP$(4)
  288. 55030  GP$(1)=CHR$(1)+CHR$(1):GP$(2)=CHR$(157)+CHR$(157)
  289. 55040  GP$(3)=CHR$(15)+CHR$(15):GP$(4)=CHR$(5)+CHR$(5)
  290. 55050  REM *************************************************************
  291. 55052  REM **        ROW AND COLUMN GAME PIECE OFFSETS                **
  292. 55054  REM *************************************************************
  293. 55060  DIM GPR(4): GPR(1)=0:GPR(2)=0:GPR(3)=1:GPR(4)=1
  294. 55070  DIM GPC(4): GPC(1)=1:GPC(2)=3:GPC(3)=3:GPC(4)=1
  295. 55100  REM *************************************************************
  296. 55102  REM **     GAME BOARD COLORS FOR THE 40 SQUARES                **
  297. 55104  REM *************************************************************
  298. 55110  DIM GBC(40): FOR I = 1 TO 40:READ GBC(I):NEXT I
  299. 55120  DATA 3,4,7,5,  6,4,7,5,   6,4,7,5,  3,    6,4,7,    5,6,4,7
  300. 55130  DATA 3,5,6,4,  7,5,6,4,   7,5,6,4,  3,    7,5,6,    4,7,5,6
  301. 55200  REM *************************************************************
  302. 55202  REM **         GAME BOARD SQUARES: ROW AND COLUMNS             **
  303. 55204  REM *************************************************************
  304. 55210  DIM GSR(40): FOR I = 1 TO 40: READ GSR(I):NEXT I
  305. 55220  DATA 1,1,1,1,    1,1,1,1,    1,1,1,1,    1,   3,5,7,   9,11,13,15
  306. 55230  DATA 17,17,17,17, 17,17,17,17, 17,17,17,17, 17, 15,13,11, 9,7,5,3
  307. 55250  DIM GSC(40): FOR I = 1 TO 40: READ GSC(I): NEXT I
  308. 55260  DATA 2, 8,14,20,26,32,38,44,50,56,62,68,74
  309. 55270  DATA 74,74,74,74,74,74,74
  310. 55280  DATA 74,68,62,56,50,44,38,32,26,20,14,8,2
  311. 55290  DATA 2,2,2,2,2,2,2
  312. 55300  REM *************************************************************
  313. 55302  REM **  CATEGORY BARS: ROWS AND COLUMNS (4 BARS BY 4 PLAYERS)  **
  314. 55304  REM *************************************************************
  315. 55310  DIM BRR(4,4): FOR I=1 TO 4: FOR J=1 TO 4: BRR(I,J)=11:NEXT J:NEXT I
  316. 55320  DIM BRC(4,4): FOR I=1 TO 4: FOR J=1 TO 4: READ BRC(I,J):NEXT J:NEXT I
  317. 55330  DATA 11,27,44,60,  14,30,47,63,  17,33,50,66,  20,36,53,69
  318. 55400  REM *************************************************************
  319. 55402  REM **                  CATEGORY COLORS                        **
  320. 55404  REM *************************************************************
  321. 55410  DIM CCL(4): FOR I = 1 TO 4: CCL(I)=GBC(I+1):NEXT I
  322. 55420  REM *************************************************************
  323. 55422  REM **               PLAYER SQUARE NUMBER                      **
  324. 55424  REM *************************************************************
  325. 55430  DIM PLS(4): PLS(1)=1:PLS(2)=13:PLS(3)=21:PLS(4)=33
  326. 55450  REM ***************************************************************
  327. 55452  REM **  HEIGHT OF TOWERS (# CORRECT ANSWERS) 4 PLAYERS, 4 TOWERS **
  328. 55454  REM ***************************************************************
  329. 55460  DIM NCRT(4,4): FOR I=1 TO 4:FOR J=1 TO 4:NCRT(I,J)=0:NEXT J: NEXT I
  330. 55999  RETURN
  331. 59000  REM **********************************************************
  332. 59002  REM **               ERROR MESSAGES                         **
  333. 59004  REM **********************************************************
  334. 59005  COLOR 0+16,NC,0   :ER=24:LOCATE ER,1:SOUND 85,15
  335. 59010  IF NERR=1 THEN PRINT "** ERROR 01 **  AT LEAST TWO PLAYERS REQUIRED.";TAB(79);" ";
  336. 59020  IF NERR=2 THEN PRINT "** ERROR 02 **  MAXIMUM OF FOUR PLAYERS ALLOWED.";TAB(79);" ";
  337. 59030  IF NERR=3 THEN PRINT "** ERROR 03 **  LESS THAN 10 QUESTIONS.  PICK AGAIN.";TAB(79);" ";
  338. 59040  IF NERR=4 THEN PRINT "** ERROR 04 **  FILE NAME NOT FOUND.  PLEASE RETYPE.";TAB(79);" ";
  339. 59050  IF NERR=5 THEN PRINT "** ERROR 05 **  STARTING QUESTION MUST BE AT LEAST 1";TAB(79);" ";
  340. 59060  IF NERR=6 THEN PRINT "** ERROR 06 **  STARTING QUESTION MUST BE LESS THAN ";NR(I)+1; TAB(79);" ";
  341. 59070  IF NERR=7 THEN PRINT "** ERROR 07 **  ONLY THE LETTERS  C, K, AND Q  ARE  VALID ";TAB(79);" ";
  342. 59080  IF NERR=8 THEN PRINT "** ERROR 08 **  ONLY THE NUMBERS 1, 2, 3, AND 4  ARE VALID ";TAB(79);" ";
  343. 59090  IF NERR=9 THEN PRINT "** ERROR 09 **  ONLY THE LETTERS Y AND N ARE VALID";TAB(79);" ";
  344. 59100  IF NERR=10 THEN PRINT "** ERROR 10 **  ";TAB(79);" ";
  345. 59490  COLOR NC,0,0  : LOCATE IR,IC
  346. 59499  RETURN
  347. 59500  REM **********************************************************
  348. 59502  REM **                 CLEAR A LINE                         **
  349. 59504  REM **********************************************************
  350. 59510  COLOR NC,0,0  :LOCATE ER,1
  351. 59520  PRINT " ";TAB(79);" ";
  352. 59530  LOCATE IR,IC
  353. 59599  RETURN
  354. 59600      IF ERR > 0 THEN RESUME 11730
  355. 60000  REM **********************************************************
  356. 60002  REM **             END OF SUBROUTINES                       **
  357. 60004  REM **********************************************************
  358. 65529  END
  359.